import type { Page } from './commonTypes'

export type RecordItem = {
  /** 兑换码 */
  exchangeCode: string
  /** 兑换时间 */
  exchangeTime: string
  /** 商品名称 */
  goodsName: string
  /** 积分价 */
  point: number
  /** 数量 */
  quantity: number
  /** 客户 */
  user: string
}

export type GetExchangeRecordListRes = {
  dataList: Array<RecordItem>
  page: Page
}

export type CommodityItem = {
  /** 下架时间  */
  downTime: string
  /** 兑换结束时间 */
  exchangeEndTime: string
  /** 兑换开始时间 */
  exchangeStartTime: string
  /** 可兑库存 */
  exchangeStock: number
  /** 已兑数量 */
  exchangedStock: number
  /** 商品编码 */
  goodsCode: string
  /** 商品名称 */
  goodsName: string
  /** ID */
  id: number
  /** 积分值 */
  point: number
  /**
   * 状态
   * - `0` 下架
   * - `1` 上架
   */
  status: number
  /** 上架 */
  upTime: string
}

export type GetExchangeCommodityListRes = {
  dataList: Array<CommodityItem>
  page: Page
}

export type GetExchangeCommodityDetailRes = {
  /** 兑换活动 */
  exchangeActivity: number
  /** 兑换活动名 */
  exchangeActivityName: string
  /** 兑换结束时间 */
  exchangeEndTime: string
  /** 限兑件数 */
  exchangeLimit: number
  /** 兑换开始时间 */
  exchangeStartTime: string
  /** 可兑库存 */
  exchangeStock: number
  /** ID */
  id: number
  /** 标签 */
  label: string
  /** 所需积分 */
  point: number
  /** 市场价 */
  price: number
  /** 排序 */
  sort: number
  /**
   * 商品来源
   * - `0` 商品来源
   */
  source: 0
}

export type GetCommodityDetailRes = {
  /** 商品描述 */
  description: string
  /** 商品编码 */
  goodsCode: string
  /** 商品图片 */
  goodsImage: string
  /** 商品名称 */
  goodsName: string
  /** 头部图片 */
  headImage: string
  /** ID */
  id: number
  /** 积分商品id */
  pointGoodsId: number
}

export type SignInRecordItem = {
  /** 当前连续签到次数 */
  continueDay: number
  /** 创建时间 */
  createTime: string
  /** 创建人 */
  createUser: number
  /** 首次签到日期 */
  firstSignTime: string
  /** ID */
  id: number
  /** 是否删除 */
  isDelete: boolean
  /** 最后一次签到日期 */
  lastSignTime: string
  /** 最长连续签到次数 */
  longestContinueDay: number
  /** 会员ID */
  memberId: number
  /** 手机号 */
  mobile: string
  /** 昵称 */
  nickName: string
  /** 奖励总优惠券数量 */
  totalCouponNum: number
  /** 奖励总积分 */
  totalSignReward: number
  /** 更新时间 */
  updateTime: string
  /** 更新人 */
  updateUser: number
}

export type GetSignInRecordListRes = {
  dataList: Array<SignInRecordItem>
  page: Page
}

export type GetSignInSettingRes = {
  /** 指定签到几天获得奖励 */
  assignDays: number
  /** 对应的优惠券ID */
  assignDaysCouponId: number
  /** 连续签到天数优惠券奖励默认关闭 */
  assignDaysCouponOpen: boolean
  /** 连续签到天数积分奖励默认开启 */
  assignDaysPointOpen: boolean
  /** 连续签到天数积分奖励 */
  assignDaysPointReward: number
  /** 连续签到天数积分奖励 */
  assignDaysRewardOpen: boolean
  /** 关联的优惠券ID */
  couponId: number
  /** 默认关闭优惠券配置 */
  dayCouponOpen: boolean
  /** 默认开启积分配置 */
  dayPointOpen: boolean
  /** 每日奖励 */
  dayPointReward: number
  /** 签到的递增奖励 */
  signContinueReward: number
  /** 递增奖励几天后失效 */
  signContinueRewardInvalidDays: number
  /** 递增奖励默认开启 */
  signContinueRewardOpen: boolean
}

export type GroupManageItem = {
  /** 活动结束时间 */
  activityEndTime: string
  /** 活动开始时间 */
  activityStartTime: string
  /** 拼团券码 */
  couponName: string
  /** 兑换截止时间 */
  exchangeEndTime: string
  /** 成团数 */
  groupNum: number
  /** 参团人数 */
  groupPeopleNum: number
  /** 活动ID */
  id: number
  /**
   * 是否发布
   */
  isPublish: boolean
  /** 活动名称 */
  name: string
  /** 券码下发量 */
  sendNum: number
  /**
   * 状态
   * - `0` 空状态
   * - `1` 未开始
   * - `2` 进行中
   * - `3` 已结束
   */
  status: 0 | 1 | 2 | 3
}

export type GetGroupManageListRes = {
  dataList: Array<GroupManageItem>
  page: Page
}

export type GetGroupManageItemDetailRes = {
  /** 活动结束时间 */
  activityEndTime: string
  /** 活动开始时间 */
  activityStartTime: string
  /** 拼团次数上限 */
  amalgamateGroupLimit: number
  /** 券码名称 */
  couponName: string
  /** 兑换截止时间 */
  exchangeEndTime: string
  /** 订单失效时间 */
  expireTime: number
  /** 商品描述 */
  goodsDescription: string
  /** 商品图片 */
  goodsImg: string
  /** 拼团券码 */
  groupCoupon: number
  /** 成团数 */
  groupNumber: number
  /** 拼团价 */
  groupPrice: number
  /** ID */
  id: number
  /** 活动名称 */
  name: string
  /** 开团次数上限 */
  openGroupLimit: number
  /** 市场价 */
  price: number
  /** 补充机器人临近活动结束时间 */
  robotFillTime: number
  /** 填充机器人数 */
  robotNum: number
  /** 补充机器人比例 */
  robotRatio: number
  /** 分享海报图 */
  sharePosterImg: string
  /** 排序 */
  sort: number
  /** 库存 */
  stock: number
}

export type GroupListItem = {
  /** 活动ID */
  activityId: number
  /** 活动名称 */
  activityName: string
  /** 活动状态 */
  activityStatus: string
  /** 拼团券码名称 */
  couponName: string
  /** 完成时间 */
  finishedTime: string
  /** 团队编号 */
  groupNo: string
  /** 成团数 */
  groupNumber: number
  /** ID */
  id: number
  /** 手机号 */
  mobile: string
  /** 参与人数 */
  participation: number
  /** 团长 */
  sponsorName: string
  /** 开团时间 */
  startTime: string
  /**
   * 拼团状态
   * - `0` 初始化
   * - `1` 组团中
   * - `2` 组团成功
   * - `3` 组团失败
   */
  status: 0 | 1 | 2 | 3
}

export type GetGroupListRes = {
  dataList: Array<GroupListItem>
  page: Page
}

export type GetGroupItemDetailRes = {
  /** 活动ID */
  activityId: number
  /** 活动名称 */
  activityName: string
  /** 活动状态 */
  activityStatus: string
  /** 拼团券码名称 */
  couponName: string
  /** 完成时间 */
  finishedTime: string
  /** 团队编号 */
  groupNo: string
  /** 成团数 */
  groupNumber: number
  /** 团员列表 */
  groupParticipationVoList: Array<{
    /** 用户头像 */
    avatar: string
    /** 参团时间 */
    joinTime: string
    /** 手机号 */
    mobile: string
    /** 用户昵称 */
    nickname: string
    /** 订单号 */
    orderSn: string
    /**
     * 订单状态
     * - `0` 未支付
     * - `1` 支付成功
     * - `2` 订单关闭
     * - `3` 订单完成
     * - `4` 订单取消
     */
    orderStatus: '0' | '1' | '2' | '3' | '4'
  }>
  /** 手机号 */
  mobile: string
  /** 参与人数 */
  participation: number
  /** 团长 */
  sponsorName: string
  /** 开团时间 */
  startTime: string
  /**
   * 拼团状态
   * - `0` 初始化
   * - `1` 组团中
   * - `2` 组团成功
   * - `3` 组团失败
   */
  groupStatus: 0 | 1 | 2 | 3
}

export type GetGroupConfigRes = {
  /** 拼团首页宣传图 */
  bannerPicture: string
  /** 活动规则 */
  groupRule: string
  /** ID */
  id: number
  /** 拼团入口图  */
  indexPicture: string
  /** 总开关 */
  status: number
  /** 拼团入口标题 */
  title: string
}

export type YxGiftGoodsItem = {
  banner: string //商品轮播图
  goodsPlatform: 0 | 1
  couponsTemp: any[]
  description: string
  detailImg: string
  goodsProperty: number
  goodsSpecs: YxGiftSkuItem[]
  goodsType: number
  id: number
  label: string
  mainImg: string
  marketPrice: number
  name: string
  saleGold: number
  saleNum: number
  salePrice: number
  status: number
  stock: number
  subTitle: string
  transitFee: number
  transitId: number
  transitName: string
  transitType: number
  video: string
}

export type YxGiftSkuItem = {
  id: number
  imgUrl: string
  incrQuantity: number
  initQuantity: number
  marketPrice: number
  salePrice: number
  status: 0 | 1
  stock: number
  erpStock: number
  warehouseNo: string
  loading: boolean
}

export type YxOrderDetail = {
  source: 0 | 1
  amount: number
  goodsTotalPrice: number
  goodsTotalPoint: number
  goodsPoint: number
  goodsPrice: number
  mainImg: string
  realPoint: number
  realPrice: number
  payTime: string
  payType: number
  phone: string
  isAfterSale: boolean
  productName: string
  receiverMobile: string
  receiverName: string
  receiverAddress: string
  receiverCity: string
  receiverProvince: string
  receiverDistrict: string
  sendTime: string
  specName: string
  status: number
  totalPrice: number
  transitFee: number
  nickname: string
  wxTransactionId: string
}

export type YxExpressInfo = {
  expressName: string
  logisticNo: string
  traces: {
    acceptStation: string
    acceptTime: string
    action: string
    location: string
    remark: string
  }[]
}

export type YxBannerItem = {
  sort: number
  img: string
}

export type RulesListItem = {
  liveBookingTitle: string
  id: number
  bannerImg: string
  sort: number
  bannerList: RulesListItemRes[]
}

export type RulesListItemRes = {
  id: number
  bannerImg: string
  sort: number
  liveBookingTitle: string
}
